package com.knight.activemq.ptp;


import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;

/**
 * Created by YQ on 2017/6/15.
 */
public class Sender {
    public static void main(String[] args) throws Exception {
        // 第一步：建立ConnectionFactory工厂对象
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnectionFactory.DEFAULT_USER,
                ActiveMQConnectionFactory.DEFAULT_PASSWORD, "tcp://0.0.0.0:61616");
        // 第二步：通过ConnectionFactory创建一个Connection连接,启动connection
        Connection connection = connectionFactory.createConnection();
        connection.start();
        // 第三步，通过connection创建session，用于接收消息;并设置是否，签收模式
        Session session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);
        // 第四步：通过session创建Destination对象，该对象指的是一个客户端用来指定生产消费目标和消费消息来源的对象，
        // 在PTP模式中，Destination被称为queue，在发布订阅模式中被称为topic;并制定destination的名称
        Destination destination = session.createQueue("hellloQueue");
        // 第五步：通过session对象创建消息的发送和接受对象(生成者和接受者)
        MessageProducer product = session.createProducer(destination);
        // 第六步：设置消息持久化的方式
        product.setDeliveryMode(DeliveryMode.NON_PERSISTENT);// 设置非持久化
        // 第七步：通过session创建消息,并使用product发送出去
        for (int i = 0; i <= 5; i++) {
            TextMessage message = session.createTextMessage();
            message.setText("Hello World " + i);
            product.send(message);
        }
        if (connection != null) {
            connection.close();
        }
    }
}
